1. Field of the Invention
The present invention relates to computer networks. More specifically, the present invention relates to a method and an apparatus for scheduling packets in a multi-service integrated switch fabric.
2. Related Art
Because of the increasing volume and complexity of data center applications, it has become increasingly common for businesses and data centers to separate enterprise applications into three or more tiers. This n-tier architecture provides the benefits of improved scalability and performance, as well as increased security.
In addition to the n-tier model, more complex IP services, such as SSL, XML, URL switching and NAT, are being relocated from general purpose servers to specialized hardware appliances. These “packet services” are performed on each packet regardless of the data payload of the packet.
While IP service specialization has many potential benefits, including faster processing and better security, this specialization increases network traffic and places an added burden on the network switch fabric. In a traditional client-server environment, the network switch fabric sees a stream of packets coming into the server and another stream of packets returning to the client. However, in current n-tier models, as clients interact with enterprise applications, as well as with specialized appliances and servers, the same packets traveling between the client and the enterprise application can potentially get routed to many specialized appliances and servers, and can consequently generate much more traffic in the local switch fabric than the simple two-way traffic in traditional systems.
In order to handle increased traffic on the local network, organizations have typically increased their bandwidth with faster switches, as well as with more intelligent packet-scheduling switches. These packet-scheduling switches prioritize traffic according to various criteria including, the type of packet and the destination of the packet. However, these packet-scheduling switches typically only consider the next destination for a packet. For example, if a packet is encrypted via Secure Socket Layers (SSL), and is consequently being routed to an SSL appliance, the packet is scheduled on the switch fabric using only knowledge of the required SSL services. If the packet will subsequently require another service, such as Network Address Translation (NAT), after SSL, the need for NAT is not considered when scheduling the packet for the SSL service. This can lead to sub-optimal scheduling decisions. For example, if the SSL service queue is currently occupied, and the NAT service queue is empty, it is preferable for the packet-scheduling switch to route the packet to the empty NAT service queue prior to routing the packet to the occupied SSL service queue, instead of routing the packet to the busy SSL service queue first.
Hence, what is needed is a method for scheduling traffic on a switch fabric in a manner that considers all of the services needed by each packet.